//电子邮件puhalskijsemen@gmail.com
//源码网站 开vpn全局模式打开 http://web3incubators.com/
//电报https://t.me/gamecode999
//网页客服 http://web3incubators.com/kefu.html
import { BundleNames } from './BundleConfig';
import { UIConfigEntry } from './UIConfig_Entry';
import { LogMgr } from './LogManager';
import { ScheduleMgr } from './ScheduleManage';
import UIManager from './UIManager';
import UIScene from './UIScene';

const { ccclass, property } = cc._decorator;

/**
 * 建议类名: MainEntry
 * 表示游戏入口场景
 */
@ccclass
export default class Entry extends UIScene {
    
    /**
     * 建议方法名: displayScene
     * 该方法显示场景，并加载需要的资源
     */
    protected _show(): void {
        const prefabList: string[] = [];
        
        // 遍历 UI 配置，并将预制体路径添加到列表中
        for (const configKey in UIConfigEntry.UIConfig_Entry) {
            if (UIConfigEntry.UIConfig_Entry.hasOwnProperty(configKey)) {
                const prefabPath = UIConfigEntry.UIConfig_Entry[configKey].prefab;
                prefabList.push(prefabPath);
            }
        }

        // 预加载资源
        cc.resources.preload(prefabList, (loadError) => {
            if (loadError) {
                LogMgr.error(`预加载通用预制体错误: ${loadError}`);
            }
            UIManager.open(BundleNames.Resouce, UIConfigEntry.UIView_Entry.UI_Entry);
        });

        // 关闭调试统计信息的显示
        cc.debug.setDisplayStats(false);
    }

    /**
     * 建议方法名: refresh
     * 该方法每帧调用一次，用于刷新调度管理器
     * @param elapsedTime 每帧消耗的时间
     */
    update(elapsedTime: number): void {
        ScheduleMgr.update(elapsedTime);
    }
}